# 第一层：用于接收装饰器传递的参数
def logging(flag):
    # 第二层：外部函数用于接收待装饰函数
    def decorator(fn):
        # 第三层：内部函数用于装饰接收的函数
        def inner(num1, num2):
            # 使用参数
            if flag == "+":
                print(">正在进行加法运算<")
            elif flag == "-":
                print(">正在进行减法运算<")
            return fn(num1, num2)

        return inner

    # 返回装饰器
    return decorator


# 被带有参数的装饰器装饰的函数
@logging('+')
def add(a, b):
    return a + b


@logging('-')
def minus(a, b):
    return a - b


result = add(1, 3)
print(result)

print("-----------")

result = minus(1, 3)
print(result)
